home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / toaiff.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  3KB  |  112 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.4)
  3.  
  4. '''Convert "arbitrary" sound files to AIFF (Apple and SGI\'s audio format).
  5.  
  6. Input may be compressed.
  7. Uncompressed file type may be AIFF, WAV, VOC, 8SVX, NeXT/Sun, and others.
  8. An exception is raised if the file is not of a recognized type.
  9. Returned filename is either the input filename or a temporary filename;
  10. in the latter case the caller must ensure that it is removed.
  11. Other temporary files used are removed by the function.
  12. '''
  13. import os
  14. import tempfile
  15. import pipes
  16. import sndhdr
  17. __all__ = [
  18.     'error',
  19.     'toaiff']
  20. table = { }
  21. t = pipes.Template()
  22. t.append('sox -t au - -t aiff -r 8000 -', '--')
  23. table['au'] = t
  24. t = pipes.Template()
  25. t.append('sox -t hcom - -t aiff -r 22050 -', '--')
  26. table['hcom'] = t
  27. t = pipes.Template()
  28. t.append('sox -t voc - -t aiff -r 11025 -', '--')
  29. table['voc'] = t
  30. t = pipes.Template()
  31. t.append('sox -t wav - -t aiff -', '--')
  32. table['wav'] = t
  33. t = pipes.Template()
  34. t.append('sox -t 8svx - -t aiff -r 16000 -', '--')
  35. table['8svx'] = t
  36. t = pipes.Template()
  37. t.append('sox -t sndt - -t aiff -r 16000 -', '--')
  38. table['sndt'] = t
  39. t = pipes.Template()
  40. t.append('sox -t sndr - -t aiff -r 16000 -', '--')
  41. table['sndr'] = t
  42. uncompress = pipes.Template()
  43. uncompress.append('uncompress', '--')
  44.  
  45. class error(Exception):
  46.     pass
  47.  
  48.  
  49. def toaiff(filename):
  50.     temps = []
  51.     ret = None
  52.     
  53.     try:
  54.         ret = _toaiff(filename, temps)
  55.     finally:
  56.         for temp in temps[:]:
  57.             if temp != ret:
  58.                 
  59.                 try:
  60.                     os.unlink(temp)
  61.                 except os.error:
  62.                     pass
  63.  
  64.                 temps.remove(temp)
  65.                 continue
  66.         
  67.  
  68.     return ret
  69.  
  70.  
  71. def _toaiff(filename, temps):
  72.     if filename[-2:] == '.Z':
  73.         (fd, fname) = tempfile.mkstemp()
  74.         os.close(fd)
  75.         temps.append(fname)
  76.         sts = uncompress.copy(filename, fname)
  77.         if sts:
  78.             raise error, filename + ': uncompress failed'
  79.         
  80.     else:
  81.         fname = filename
  82.     
  83.     try:
  84.         ftype = sndhdr.whathdr(fname)
  85.         if ftype:
  86.             ftype = ftype[0]
  87.     except IOError:
  88.         msg = None
  89.         if type(msg) == type(()) and len(msg) == 2 and type(msg[0]) == type(0) and type(msg[1]) == type(''):
  90.             msg = msg[1]
  91.         
  92.         if type(msg) != type(''):
  93.             msg = repr(msg)
  94.         
  95.         raise error, filename + ': ' + msg
  96.  
  97.     if ftype == 'aiff':
  98.         return fname
  99.     
  100.     if ftype is None or ftype not in table:
  101.         raise error, '%s: unsupported audio file type %r' % (filename, ftype)
  102.     
  103.     (fd, temp) = tempfile.mkstemp()
  104.     os.close(fd)
  105.     temps.append(temp)
  106.     sts = table[ftype].copy(fname, temp)
  107.     if sts:
  108.         raise error, filename + ': conversion to aiff failed'
  109.     
  110.     return temp
  111.  
  112.